約 2,544,606 件
https://w.atwiki.jp/fun-sci/pages/19.html
ジェネレータos.walkで階層を総ざらいして os.statでフォルダ情報を拾います。 基本的にコマンドで dir /s | grep -E "2006/12/17" とかの方が楽だし、速いのはしょうがない import time,os,sys,fnmatch from stat import * def watch_dir(dflt= . ,patterns= * ,yield_folders=False,single_level=False) patterns = patterns.split( ; ) for path,subdir,files in os.walk(dflt) if yield_folders files.extend(subdir) files.sort() for name in files for pattern in patterns if fnmatch.fnmatch(name,pattern) yield os.path.join(path,name),os.stat(os.path.join(path,name)) break if single_level break if __name__== __main__ for mypath,mystat in watch_dir(dflt="/",patterns="tex",yield_folders=True) print mypath + " " + time.ctime(mystat.st_atime)
https://w.atwiki.jp/fft_cheat/pages/59.html
MENU TUTO1-7.MES? チュートリアル時に流れるダーラボンのセリフ TUTO1-7.SCR 不明 BK_FIRE0^3.TIM? 戦士斡旋所の画像それぞれ1章2.3章4章の三枚 BK_HONE0^3.TIM? 毛皮骨肉店の画像それぞれ1章2.3章4章の三枚 BK_SHOP2.TIM? ショップの画像それぞれ1章2.3章4章の三枚 酒場の絵は無かった FFTSAVE.DAT 不明 現在の状況 こちらもほとんど手をつけられていない。 解析してもうまみが少ないといえばそのとおりなのだが・・・
https://w.atwiki.jp/nicepaper/pages/365.html
Laravelでのファイル構成を確認 概要 appフォルダの配下にmodelが作られる ルーティング管理はapp\http\routes.phpで行う。 コントローラ管理はapp\http\controllers\~~.phpで行う。 メールの設定などはconfigで行う。 databaseはmigrationsでバージョン管理を行う。 publicは画像やcssやimgなどはここにいれる。 resouce\viewsでHTMLのテンプレート管理を行う。 treeコマンド #tree -L 2 . ├── app │ ├── Console │ ├── Events │ ├── Exceptions │ ├── Http │ ├── Jobs │ ├── Listeners │ ├── Policies │ ├── Providers │ └── User.php ├── artisan ├── bootstrap │ ├── app.php │ ├── autoload.php │ └── cache ├── composer.json ├── composer.lock ├── config │ ├── app.php │ ├── auth.php │ ├── broadcasting.php │ ├── cache.php │ ├── compile.php │ ├── database.php │ ├── filesystems.php │ ├── mail.php │ ├── queue.php │ ├── services.php │ ├── session.php │ └── view.php ├── database │ ├── factories │ ├── migrations │ └── seeds ├── gulpfile.js ├── package.json ├── phpunit.xml ├── public │ ├── favicon.ico │ ├── index.php │ ├── robots.txt │ └── web.config ├── readme.md ├── resources │ ├── assets │ ├── lang │ └── views ├── server.php ├── storage │ ├── app │ ├── framework │ └── logs ├── tests │ ├── ExampleTest.php │ └── TestCase.php └── vendor ├── autoload.php ├── bin ├── classpreloader ├── composer ├── dnoegel ├── doctrine ├── fzaninotto ├── hamcrest ├── jakub-onderka ├── jeremeamia ├── laravel ├── league ├── mockery ├── monolog ├── mtdowling ├── nesbot ├── nikic ├── paragonie ├── phpdocumentor ├── phpspec ├── phpunit ├── psr ├── psy ├── sebastian ├── swiftmailer ├── symfony ├── vlucas └── webmozart
https://w.atwiki.jp/wiki11_nadeshiko/pages/8.html
目次 プロフィール お知らせ プログ 訪問者連絡用 プロフィール なまえ ぎょびー キャラ/基本タイプ 素敵マキシ(グーグル認定済み)/らぶりー 好きなこと (ノ)ω(ヾ)ムニムニ 今月の目標 知名度上昇 目次に戻る お知らせ HPの編集の仕方が結構分かってきましたヾ(〃^∇^)ノわぁい♪ 目次に戻る プログ #weblog 目次に戻る 訪問者連絡用 名前 コメント 風俗店を探よりココ!!男性は報酬あり!(/∀\*)) http //sns.fgn.asia/ -- あつ子 (2012-06-18 21 40 11) こんばんわーw ーテチことーテチです(あ 私のHPになでしこクラブ様の要塞に関するページに飛ぶように項目を作りたいと思っているのですが、その了承を聞きにきました>< 返事はゲーム内でしていただけたらうれしいですwではぁではぁ☆ノ -- ーテチ (2007-05-20 05 29 16) それは俺に投票しないからですよm9(・∀・)ビシッ!!・・・今試して見ましたが、どちらに投票してもエラーが出ますね。エラーがでても一応投票はカウントされてますが。。。 -- ぎょっぴ (2007-01-15 04 40 18) けむりんに投票しようとしたらエラーが出ました -- カルピ (2007-01-14 03 36 45) う~ん、ナイスw -- なっち (2006-08-30 08 03 43) いつか「素敵マキシ」の単語で来れるようにするため、ちょっと弄ってみました(/▽\)きゃー♪ -- ぎょっぴ (2006-08-29 02 45 58) 好きなことミラ鑑賞って(*´д`)ハァハァエアコン壊れたんですか・・・それは暑いですね(ノω・、) ウゥ・・・ -- むぅーたん (2006-08-04 02 14 09)
https://w.atwiki.jp/nadebook/pages/64.html
Tips エディタのテキストを揃える エディタ部品のテキストはふつう左揃えで表示されます。これを中央揃えにしたり右揃えにしたい場合は、APIを使います。 ***** サンプル ***** 定数設定 GWL_STYLE=-16 ES_LEFT=$0 ES_CENTER=$1 ES_RIGHT=$2 部品作成 エディタAとはエディタ。 エディタAのテキストは「なでしこ」 ボタンBとはボタン。 ボタンBについて テキストは「左」。ポケットはES_LEFT クリックした時は~書式変更 ボタンCとはボタン。 ボタンCについて テキストは「中」。ポケットはES_CENTER クリックした時は~書式変更 ボタンDとはボタン。 ボタンDについて テキストは「右」。ポケットはES_RIGHT クリックした時は~書式変更 ●書式変更 HndAはエディタAのハンドル。 エディタ部品のウィンドウハンドル取得 newStyle=イベント部品→ポケット。 クリックしたボタンのポケットの値を取得 Styleとは整数。 Style=GetWindowLong(HndA,GWL_STYLE) 現在の書式を取得 Style=AND(Style,$FFFFFFFC)+newStyle 書式部分をクリア($FFFFFFFC)してから変更 SetWindowLong(HndA,GWL_STYLE,Style) 新たな書式を設定 textA=エディタA。エディタAは「」。エディタAはtextA。 書き換えないと反映しない API宣言 ●GetWindowLong(hWnd,nIndex) =DLL("user32.dll", "LONG GetWindowLongA( HWND hWnd, // ウィンドウハンドル int nIndex // 取得するデータの指定 )") ●SetWindowLong(hWnd,nIndex,dwNewLong) =DLL("user32.dll", "LONG SetWindowLongA( HWND hWnd, // ウィンドウハンドル int nIndex, // 変更するデータの指定 LONG dwNewLong // 新しい値 )") ***** ここまで ***** 文字位置を設定するには、エディタ部品のGWL_STYLEに、ES_LEFT(左寄せ)、ES_CENTER(中央揃え)、ES_RIGHT(右寄せ)を設定します。 GetWindowLongでエディタ部品の現在の状態を取得し、Styleに代入します。 GWL_STYLEの最後の2ビットを書き換えることにより、変更できるのですが、変更前の状態がわからないために、一度クリアしてから値(newStyle)を加えています。 SetWindowLongで変更したStyleをGWL_STYLEに設定します。 上記プログラムの「定数設定」部分と「API宣言」部分は、なでしこライブラリの「windows.nako」に定義されていますので、次のように取り込むことで、わざわざ定義しなくても済みます。 ***** サンプル ***** !「windows.nako」を取り込む。 部品作成 エディタAとはエディタ。 エディタAのテキストは「なでしこ」 ボタンBとはボタン。 ボタンBについて テキストは「左」。ポケットはES_LEFT クリックした時は~書式変更 ボタンCとはボタン。 ボタンCについて テキストは「中」。ポケットはES_CENTER クリックした時は~書式変更 ボタンDとはボタン。 ボタンDについて テキストは「右」。ポケットはES_RIGHT クリックした時は~書式変更 ●書式変更 HndAはエディタAのハンドル。 エディタ部品のウィンドウハンドル取得 newStyle=イベント部品→ポケット。 クリックしたボタンのポケットの値を取得 Styleとは整数。 Style=GetWindowLong(HndA,GWL_STYLE) 現在の書式を取得 Style=AND(Style,$FFFFFFFC)+newStyle 書式部分をクリア($FFFFFFFC)してから変更 SetWindowLong(HndA,GWL_STYLE,Style) 新たな書式を設定 textA=エディタA。エディタAは「」。エディタAはtextA。 書き換えないと反映しない ***** ここまで *****
https://w.atwiki.jp/nadebook/pages/139.html
【非アクティブ時】イベント なでしこアプリケーション本体、つまり母艦がアクティブでなくなった時に発生するイベントです。 母艦がアクティブになっている状態から、他のアプリケーションがアクティブになると発生します。 イベントの設定 母艦のアクティブ時は (イベント処理) '***** サンプル ***** 母艦のアクティブ時は 「母艦がアクティブ」と表示。 母艦の非アクティブ時は 「母艦が非アクティブ」と表示。 '***** ここまで *****
https://w.atwiki.jp/lightning_launcher/pages/72.html
フォルダのウィンドウの設定項目です。(9.2.2) メニュー・項目の表記は日本語言語パックに基づきます。(バージョン18) タイトルを表示 文字色 フォントサイズ 横位置 縦位置 左(位置設定をカスタムにしている場合のみ) 上(位置設定をカスタムにしている場合のみ) 幅 高さ 開く時 閉じる時 フェード 変更したい部分をタップすると(複数選択可)以下の項目を設定することができます。 Nine Patch [タイトル設定] タイトルを表示 default on 文字色 フォントサイズ [配置] 横位置 左 中央 右 カスタム 縦位置 上 中央 下 カスタム 左(位置設定をカスタムにしている場合のみ) 上(位置設定をカスタムにしている場合のみ) 幅 高さ [アニメーション] 開く時 なし 開閉 左から右へスライド 右から左へスライド 上から下へスライド 下から上へスライド 閉じる時 なし 開閉 左から右へスライド 右から左へスライド 上から下へスライド 下から上へスライド フェード [ボックス] 変更したい部分をタップすると(複数選択可)以下の項目を設定することができます。 境界線をロングタップで上下左右すべての境界線を選択/選択解除できるようになりました。マージン・パディングも同様です。(9.2.2) マージンサイズ 境界線サイズ 普段の色 パディングサイズ 中身普段の色 Nine Patch 上へ 前のページに戻る トップページ wikiの内容や運営に関するコメントはトップページへ 編集については編集室へお願いします。
https://w.atwiki.jp/nadebook/pages/134.html
【アクティブ化した時】イベント フォームがアクティブになった時に発生するイベントです。 なでしこアプリケーション内でフォームがアクティブになった時に発生するイベントですので、他のアプリケーションがアクティブになっている状態で、フォームをアクティブにしてもこのイベントは発生しません。アプリケーション本体がアクティブになったことを知るには「母艦のアクティブ時」を使います。 イベントの設定 (部品名)のアクティブ化した時は (イベント処理) '***** サンプル ***** フォームAとはフォーム。 フォームAについて アクティブ化した時は 「フォームがアクティブ」と言う。 母艦のアクティブ化した時は 「母艦がアクティブ」と言う。 フォームAを表示。 '***** ここまで *****
https://w.atwiki.jp/fxext/pages/46.html
ブックマーク編集パネルにあるPlaceフォルダ選択リストメニュー/ツリービューが使いたかったので。 editBookmarkOverlay.xul と editBookmarkOverlay.js と editBookmarkOverlay.css のコピーみたいな感じに…。editBookmarkOverlay.dtd はコピーせずそのまま使うことにした。 jsコードは editBookmarkOverlay.js を読み込んで gEditItemOverlay のメソッドのいくつかを改造/置き換えた方が早くて楽なんだけど、中の動きを理解するためにあえて必要な部分をまるまるコピーしながら勉強。2箇所ほどバグを発見した…。 ファイル構成 ブラウザにダイアログを開くメニューを追加chrome.manifest browser.xul browser.js ダイアログを作成dialog.xul dialog.js PlaceFolderPicker.xul PlaceFolderPicker.js PlaceFolderPicker.css 機能としては、メニューからダイアログを開いて、placeフォルダを選択して、okで終わるとprefs.js設定にフォルダidを保存するだけ。 ファイル構成 *.xpi ├ install.rdf ├ chrome.manifest └ content ├ browser.xul ├ browser.js └ PlaceFolderPicker ├ dialog.xul ├ dialog.js ├ PlaceFolderPicker.xul ├ PlaceFolderPicker.js └ PlaceFolderPicker.css PlaceFolderPicker.css は本当は skin フォルダに入れるべきなんだけど、面倒なので xul や js と同じフォルダに入れてる。 ブラウザにダイアログを開くメニューを追加 chrome.manifest パッケージ名はとりあえず安直に test で。 content test content/ overlay chrome //browser/content/browser.xul chrome //test/content/browser.xul browser.xul ツールメニュー内にメニュー追加 script src="browser.js"/ menupopup id="menu_ToolsPopup" menuitem id="test_open_dialog" label="PlaceFolderPicker ダイアログを開く" oncommand="testBrowser.openDialog();"/ /menupopup browser.js var testBrowser = { openDialog function() { let features = "centerscreen,chrome,modal,resizable=yes"; window.openDialog( chrome //test/content/PlaceFolderPicker/dialog.xul , testDialog , features); }, }; ダイアログを作成 dialog.xul PlaceFolderPicker.xul を overlay で読み込む。 ?xml version="1.0"? ?xml-stylesheet href="chrome //global/skin/"? ?xul-overlay href="chrome //test/content/PlaceFolderPicker/PlaceFolderPicker.xul"? dialog id="testDialog" title="PlaceFolderPicker テスト ダイアログ" xmlns="http //www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" onload="testDialog.init();" onunload="testDialog.uninit();" style="min-width 30em;" buttons="accept,cancel" ondialogaccept="return testDialog.ok();" ondialogcancel="return testDialog.cancel();" script src="dialog.js"/ grid id="PlaceFolderPickerContent"/ /dialog dialog.js var testDialog = { init function() { var id; try { id = Services.prefs.getIntPref("extensions.test.folderid"); } catch(e) {} PlaceFolderPicker.init(id); }, uninit function() { PlaceFolderPicker.uninit(); }, ok function() { Services.prefs.setIntPref("extensions.test.folderid", PlaceFolderPicker.id); PlaceFolderPicker.save(); return true; }, cancel function() { return true; }, }; PlaceFolderPicker.xul dialog.xulをoverlayする。 editBookmarkOverlay.xul からかなりコピーしてる。 ?xml version="1.0"? ?xml-stylesheet href="chrome //browser/skin/places/places.css"? ?xml-stylesheet href="chrome //browser/content/places/places.css"? ?xul-overlay href="chrome //browser/content/places/placesOverlay.xul"? ?xml-stylesheet href="PlaceFolderPicker.css"? !DOCTYPE overlay [ !ENTITY % editBookmarkOverlayDTD SYSTEM "chrome //browser/locale/places/editBookmarkOverlay.dtd" %editBookmarkOverlayDTD; ] overlay id="PlaceFolderPicker" xmlns="http //www.mozilla.org/keymaster/gatekeeper/there.is.only.xul" script src="PlaceFolderPicker.js"/ !-- browser/omni.ja/chrome/browser/content/browser/places/editBookmarkOverlay.xul -- grid id="PlaceFolderPickerContent" flex="1" columns column/ column flex="1"/ /columns rows row id="PFP_folderRow" align="center" label value=" editBookmarkOverlay.folder.label;" control="PFP_folderMenuList"/ hbox flex="1" menulist id="PFP_folderMenuList" flex="1" class="folder-icon" oncommand="PlaceFolderPicker.onFolderMenuListCommand(event);" menupopup menuitem id="PFP_toolbarFolderItem" class="menuitem-iconic folder-icon"/ menuitem id="PFP_bmRootItem" class="menuitem-iconic folder-icon"/ menuitem id="PFP_unfiledRootItem" class="menuitem-iconic folder-icon"/ menuseparator id="PFP_chooseFolderSeparator"/ menuitem id="PFP_chooseFolderMenuItem" label= editBookmarkOverlay.choose.label; class="menuitem-iconic folder-icon"/ menuseparator id="PFP_foldersSeparator"/ /menupopup /menulist button id="PFP_foldersExpander" class="expander-down" tooltiptext=" editBookmarkOverlay.foldersExpanderDown.tooltip;" tooltiptextdown=" editBookmarkOverlay.foldersExpanderDown.tooltip;" tooltiptextup=" editBookmarkOverlay.expanderUp.tooltip;" oncommand="PlaceFolderPicker.toggleFolderTreeVisibility();"/ /hbox /row row id="PFP_folderTreeRow" collapsed="true" flex="1" spacer/ vbox flex="1" tree id="PFP_folderTree" flex="1" class="placesTree" type="places" height="150" minheight="150" editable="true" hidecolumnpicker="true" onselect="PlaceFolderPicker.onFolderTreeSelect();" treecols treecol anonid="title" flex="1" primary="true" hideheader="true"/ /treecols treechildren flex="1"/ /tree hbox button id="PFP_newFolderButton" label=" editBookmarkOverlay.newFolderButton.label;" accesskey=" editBookmarkOverlay.newFolderButton.accesskey;" oncommand="PlaceFolderPicker.newFolder();"/ /hbox /vbox /row /rows /grid /overlay PlaceFolderPicker.js editBookmarkOverlay.js からコピーしまくり // browser/omni.ja/chrome/browser/content/browser/places/editBookmarkOverlay.js // Cu.import("resource //gre/modules/PlacesUtils.jsm"); // Cu.import("resource ///modules/PlacesUIUtils.jsm"); // Cu.import("resource //gre/modules/debug.js"); // 最近使用したフォルダのアノテーションマーク。↓はブックマーク編集パネルのと同じ。 // 共有したくなければ独自のを設定すればいい。 const LAST_USED_ANNO = "bookmarkPropertiesDialog/folderLastUsed"; // 最近使用したフォルダの表示数 const MAX_FOLDER_ITEM_IN_MENU_LIST = 5; var PlaceFolderPicker = { init function PFP_init(id) { this.id = id; try { if (id === undefined) throw new Error( id が指定されていません。 ); if (id == PlacesUtils.placesRootId) throw new Error( Placesルートフォルダは指定出来ません。 ); if (id == PlacesUtils.tagsFolderId) throw new Error( タグフォルダは指定出来ません。 ); let bms = PlacesUtils.bookmarks; let type = bms.getItemType(this.id); if (type != bms.TYPE_FOLDER) throw new Error( 指定の id はフォルダではありません。id + this.id + /type + type); //bms.getFolderReadonlyはfirefox36で削除された模様 //if (bms.getFolderReadonly(this.id)) // throw new Error( フォルダが読み込み専用です。id + this.id); } catch(e) { console.error(e); this.id = PlacesUtils.bookmarksMenuFolderId; // デフォルトのフォルダ } this._folderMenuList = this._element("folderMenuList"); this._folderTree = this._element("folderTree"); this._initFolderMenuList(); // observe changes PlacesUtils.bookmarks.addObserver(this, false); }, uninit function PFP_uninit(save) { PlacesUtils.bookmarks.removeObserver(this); }, save function() { // 現在のフォルダを最近使用したフォルダとしてマークアップ(特殊フォルダは除く) if (this.id != PlacesUtils.unfiledBookmarksFolderId this.id != PlacesUtils.toolbarFolderId this.id != PlacesUtils.bookmarksMenuFolderId) this._markFolderAsRecentlyUsed(this.id); }, _element function(id) { return window.document.getElementById("PFP_" + id); }, _initFolderMenuList function PFP__initFolderMenuList() { const bms = PlacesUtils.bookmarks; const annos = PlacesUtils.annotations; // 初期リストの設定 { let unfiledItem = this._element("unfiledRootItem"); unfiledItem.label = bms.getItemTitle(PlacesUtils.unfiledBookmarksFolderId); unfiledItem.folderId = PlacesUtils.unfiledBookmarksFolderId; let bmMenuItem = this._element("bmRootItem"); bmMenuItem.label = bms.getItemTitle(PlacesUtils.bookmarksMenuFolderId); bmMenuItem.folderId = PlacesUtils.bookmarksMenuFolderId; let toolbarItem = this._element("toolbarFolderItem"); toolbarItem.label = bms.getItemTitle(PlacesUtils.toolbarFolderId); toolbarItem.folderId = PlacesUtils.toolbarFolderId; } // 最近使用したフォルダのリストを取得 var folderIds = annos.getItemsWithAnnotation(LAST_USED_ANNO); // リストをソート this._recentFolders = []; for (let i = 0; i folderIds.length; i++) { let lastUsed = annos.getItemAnnotation(folderIds[i], LAST_USED_ANNO); this._recentFolders.push({ folderId folderIds[i], lastUsed lastUsed }); } this._recentFolders.sort(function(a, b) { if (b.lastUsed a.lastUsed) return -1; if (b.lastUsed a.lastUsed) return 1; return 0; }); // 既定の数だけメニューに追加 var numberOfItems = Math.min(MAX_FOLDER_ITEM_IN_MENU_LIST, this._recentFolders.length); for (let i = 0; i numberOfItems; i++) { this._appendFolderItemToMenupopup(this._recentFolders[i].folderId); } // 現在のフォルダをデフォルト選択 var defaultItem = this._getFolderMenuItem(this.id); this._folderMenuList.selectedItem = defaultItem; // 特殊フォルダアイコン表示のため、menulist要素に独自属性を設定する this._folderMenuList.setAttribute("selectedId", defaultItem.id ); }, _appendFolderItemToMenupopup function PFP__appendFolderItemToMenuList(aFolderId) { var folderMenuItem = window.document.createElement("menuitem"); var folderTitle = PlacesUtils.bookmarks.getItemTitle(aFolderId) folderMenuItem.folderId = aFolderId; folderMenuItem.setAttribute("label", folderTitle); folderMenuItem.className = "menuitem-iconic folder-icon append"; this._folderMenuList.menupopup.appendChild(folderMenuItem); return folderMenuItem; }, _getFolderMenuItem function PFP__getFolderMenuItem(aFolderId) { var menupopup = this._folderMenuList.menupopup; for (let i = 0; i menupopup.childNodes.length; i++) { if ("folderId" in menupopup.childNodes[i] menupopup.childNodes[i].folderId == aFolderId) return menupopup.childNodes[i]; } // 最近使用したフォルダが規定の数かそれ以上の場合、1個削除 var appendMenu = menupopup.getElementsByClassName("append"); if (appendMenu.length = MAX_FOLDER_ITEM_IN_MENU_LIST) menupopup.removeChild(menupopup.lastChild); return this._appendFolderItemToMenupopup(aFolderId); }, onFolderMenuListCommand function PFP_onFolderMenuListCommand(aEvent) { if (aEvent.target.id == "PFP_chooseFolderMenuItem") { // リストメニューの選択状態を元に戻し、ツリーを表示する let item = this._getFolderMenuItem(this.id); this._folderMenuList.selectedItem = item; setTimeout(function(self) self.toggleFolderTreeVisibility(), 100, this); return; } // 現在のフォルダidを更新する this.id = this._getFolderIdFromMenuList(); // 特殊フォルダアイコン表示のためのmenulist要素の独自属性を更新する this._folderMenuList.setAttribute("selectedId", this._folderMenuList.selectedItem.id ); // フォルダツリーを更新する var folderTreeRow = this._element("folderTreeRow"); if (!folderTreeRow.collapsed) { var selectedNode = this._folderTree.selectedNode; if (!selectedNode || PlacesUtils.getConcreteItemId(selectedNode) != this.id) this._folderTree.selectItems([this.id]); } }, _getFolderIdFromMenuList function PFP__getFolderIdFromMenuList() { var selectedItem = this._folderMenuList.selectedItem; NS_ASSERT("folderId" in selectedItem, "Invalid menuitem in the folders-menulist"); return selectedItem.folderId; }, toggleFolderTreeVisibility function PFP_toggleFolderTreeVisibility() { var expander = this._element("foldersExpander"); var folderTreeRow = this._element("folderTreeRow"); if (!folderTreeRow.collapsed) { expander.className = "expander-down"; expander.setAttribute("tooltiptext", expander.getAttribute("tooltiptextdown")); folderTreeRow.collapsed = true; this._element("chooseFolderSeparator").hidden = this._element("chooseFolderMenuItem").hidden = false; } else { expander.className = "expander-up" expander.setAttribute("tooltiptext", expander.getAttribute("tooltiptextup")); folderTreeRow.collapsed = false; const FOLDER_TREE_PLACE_URI = "place excludeItems=1 excludeQueries=1 excludeReadOnlyFolders=1 folder=" + PlacesUIUtils.allBookmarksFolderId; this._folderTree.place = FOLDER_TREE_PLACE_URI; this._element("chooseFolderSeparator").hidden = this._element("chooseFolderMenuItem").hidden = true; this._folderTree.selectItems([this.id]); this._folderTree.focus(); } window.sizeToContent(); }, onFolderTreeSelect function PFP_onFolderTreeSelect() { var selectedNode = this._folderTree.selectedNode; // Disable the "New Folder" button if we cannot create a new folder this._element("newFolderButton") .disabled = !this._folderTree.insertionPoint || !selectedNode; if (!selectedNode) return; var folderId = PlacesUtils.getConcreteItemId(selectedNode); if (this.id == folderId) return; var folderItem = this._getFolderMenuItem(folderId); this._folderMenuList.selectedItem = folderItem; folderItem.doCommand(); }, _markFolderAsRecentlyUsed function PFP__markFolderAsRecentlyUsed(aFolderId) { var txns = []; // Expire old unused recent folders var anno = this._getLastUsedAnnotationObject(false); while (this._recentFolders.length MAX_FOLDER_ITEM_IN_MENU_LIST) { var folderId = this._recentFolders.pop().folderId; let annoTxn = new PlacesSetItemAnnotationTransaction(folderId, anno); txns.push(annoTxn); } // Mark folder as recently used anno = this._getLastUsedAnnotationObject(true); let annoTxn = new PlacesSetItemAnnotationTransaction(aFolderId, anno); txns.push(annoTxn); let aggregate = new PlacesAggregatedTransaction("Update last used folders", txns); PlacesUtils.transactionManager.doTransaction(aggregate); }, /** * Returns an object which could then be used to set/unset the * LAST_USED_ANNO annotation for a folder. * * @param aLastUsed * Whether to set or unset the LAST_USED_ANNO annotation. * @returns an object representing the annotation which could then be used * with the transaction manager. */ _getLastUsedAnnotationObject function PFP__getLastUsedAnnotationObject(aLastUsed) { return { name LAST_USED_ANNO, type Ci.nsIAnnotationService.TYPE_INT32, flags 0, value aLastUsed ? new Date().getTime() null, expires Ci.nsIAnnotationService.EXPIRE_NEVER, }; }, newFolder function PFP_newFolder() { var ip = this._folderTree.insertionPoint; // default to the bookmarks menu folder if (!ip || ip.itemId == PlacesUIUtils.allBookmarksFolderId) { ip = new InsertionPoint(PlacesUtils.bookmarksMenuFolderId, PlacesUtils.bookmarks.DEFAULT_INDEX, Ci.nsITreeView.DROP_ON); } // XXXmano add a separate "New Folder" string at some point... var defaultLabel = this._element("newFolderButton").label; var txn = new PlacesCreateFolderTransaction(defaultLabel, ip.itemId, ip.index); PlacesUtils.transactionManager.doTransaction(txn); this._folderTree.focus(); this._folderTree.selectItems([ip.itemId]); PlacesUtils.asContainer(this._folderTree.selectedNode).containerOpen = true; this._folderTree.selectItems([this._lastNewItem]); this._folderTree.startEditing(this._folderTree.view.selection.currentIndex, this._folderTree.columns.getFirstColumn()); }, // nsINavBookmarkObserver onItemChanged function PFP_onItemChanged(aItemId, aProperty, aIsAnnotationProperty, aValue, aLastModified, aItemType) { if (aProperty == "title" aItemType == PlacesUtils.bookmarks.TYPE_FOLDER) { // If the title of a folder which is listed within the folders // menulist has been changed, we need to update the label of its // representing element. var menupopup = this._folderMenuList.menupopup; for (let i = 0; i menupopup.childNodes.length; i++) { if ("folderId" in menupopup.childNodes[i] menupopup.childNodes[i].folderId == aItemId) { menupopup.childNodes[i].label = aValue; break; } } } return; }, onItemAdded function PFP_onItemAdded(aItemId) { this._lastNewItem = aItemId; }, onItemMoved function() { }, onItemRemoved function() { }, onBeginUpdateBatch function() { }, onEndUpdateBatch function() { }, onItemVisited function() { }, }; PlaceFolderPicker.css /* browser/omni.ja/chrome/browser/skin/classic/browser/places/editBookmarkOverlay.css */ /**** folder menulist ****/ .folder-icon .menulist-label-box .menulist-icon { width 16px; height 16px; } .folder-icon .menu-iconic-left { display -moz-box; } .folder-icon { list-style-image url("chrome //global/skin/icons/folder-item.png") !important; -moz-image-region rect(0px, 32px, 16px, 16px) !important; } /**** expanders ****/ .expander-up, .expander-down { min-width 0; margin 0; -moz-margin-end 4px; } .expander-up .button-box, .expander-down .button-box { padding 0; } .expander-up { list-style-image url("chrome //global/skin/icons/collapse.png"); } .expander-down { list-style-image url("chrome //global/skin/icons/expand.png"); } #PFP_folderTree { margin-top 2px; margin-bottom 2px; } /* editBookmarkOverlay.js で javascript で処理していた セパレーターの非表示処理はCSSで可能 */ #PFP_foldersSeparator last-child { display none; } /* dropdown icons */ #PFP_folderMenuList[selectedId="PFP_toolbarFolderItem"], #PFP_toolbarFolderItem { list-style-image url("chrome //browser/skin/places/bookmarksToolbar.png") !important; -moz-image-region auto !important; } #PFP_folderMenuList[selectedId="PFP_bmRootItem"], #PFP_bmRootItem { list-style-image url("chrome //browser/skin/places/bookmarksMenu.png") !important; -moz-image-region auto !important; } #PFP_folderMenuList[selectedId="PFP_unfiledRootItem"], #PFP_unfiledRootItem { list-style-image url("chrome //browser/skin/places/unsortedBookmarks.png") !important; -moz-image-region auto !important; }
https://w.atwiki.jp/123hinata456/pages/31.html
このことは多分、誰も知らない。 中3になって、親友が学校に来なくなりました。 理由は、家庭の事情ってやつです。 学校ではいつも、その子と一緒にふたりでいました。 だから、その子がいなくなったことは、非常に大きなダメージでした。 表面的には明るく振舞っていたけど、笑顔は確実に減っていきました。 毎日が暗く、まるで深海で一人ポツリと泳いでいるようでした。 何かにかけて、自分は一人なんだと嘆き、密かに泣きました。 ボンヤリと日々が過ぎていきました。 そして、とうとうおかしくなりました。 ブレーキが壊れるような。雪の重みに耐え切れなくなった屋根が、突然潰れるような。 ふっと自分が壊れました。 薬をたくさん飲みました。ポケットにあった薬を全部。 フラフラになって、学校を早退して。 もう目の前は真っ暗に、絶望になりました。 何を大袈裟な、と思うでしょう。 でも、その子の存在はそれくらい大きなものでした。 私が壊れても、世界は回ります。時は進みます。 ある日、大きな光を見つけました。 黒く、暗く染まっていく私には眩しすぎる光でした。 目を瞑り、身を小さく閉ざしても、その光は見えました。 周りに、「必要以上に構うな」というオーラを出していたのに、その光は、彼は、 無遠慮に近づいてきました。 彼は、ニコニコと私にいたずらを仕掛けて、それに引っかかるとケラケラと笑いました。 私のちょっとした趣味に合わせてくれ、楽しそうにしてくれました。 この人のようになりたいと、微かに思い始めました。 彼は、自分の趣味を教えてくれました。 そして私を誘ってくれました。その話をする彼は、とても生き生きとしていました。 彼の趣味が、私の趣味にもなりました。 話が合うと嬉しくて、もっとたくさん知りたいと努力しました。 彼のような人になりたいと、努力しました。 気づいたら、笑顔が増えていました。 親友を忘れたわけではありません。 今でも大好きです。 ただ、その子への依存を解きました。 深海から引っ張り上げてくれて、 クラスから浮かずに済んだのは、 彼のおかげです。 彼もまた、私を助けたなんて、微塵も感じていないでしょう。 だからこれは、 誰も知らない、私だけの話。 だけど、知ってほしい気持ちもあります。そしてお礼を言って、伝えたい。 ありがとう。